The present invention relates, in general, to integrated circuits and, more particularly, to data processors.
Many data processors based on conventional architectures execute software instructions in sequential fashion. Pipelining instructions within the data processor allow complex functions to be completed during a minimum of clock cycles. General purpose processors with pipeline instructions are capable of high levels of performance but require considerable blocks of integrated circuitry and firmware dedicated to the complex and high level functions. The general purpose processors are referred to as Complex Instruction Set Computers (CISC) due to the features that allow the execution of complex instructions.
Another type of data processor known as a Reduced Instruction Set Computer (RISC) incorporates a simplified instruction set. The RISC processor has less special purpose circuitry than the CISC processor and an architecture that executes each instruction within a single clock cycle. The simplified instruction set of the RISC processor accomplishes complex functions through software routines rather than through dedicated hardware. Thus, it is possible for a RISC processor with a highly efficient instruction set to execute instructions faster than a CISC processor.
Applications involving data communications are handled by processors known as Digital Signal Processors (DSPs). DSP processors have circuitry to handle such tasks as complex mathematical processing and video image generation. A variety of different data processors are available for use in providing solutions in specific applications. In general, each of the different data processors have a certain number of instructions in common. In addition to the common instructions, application specific instructions and associated hardware have been added to customize the data processor to fit the intended application.
Signed/unsigned numbers, multi-precision integer addition and subtraction, and carry/borrow control information, are a few of the integer arithmetic instructions that may be encoded into the "operation code" (opcode) depending upon the specific application. Thus, it becomes the task of the user to properly select the type of data processor having an instruction set that best fits the intended application.
General purpose data processors have an instruction set that is designed to cover a variety of applications.
Thus, the general purpose data processors may either have instructions that are not used or lack instructions that would reduce execution time and provide a data processing solution for some applications. On the other hand, DSPs are designed to fit specific applications and have instruction sets that meet the requirements of those applications.
Accordingly, it would be advantageous to have a data processor that provides an instruction set that fits the intended application. The data processor should be manufacturable and provide a cost effective solution for the data processing needs of the user.